术语计算机体系结构可能指计算机的整个硬件级别。然而,它经常被用来指计算机硬件的数字处理器部分的设计和实现,而本章我们重点讨论计算机处理器体系结构。

中央处理单元(CPU 或处理器)是计算机中对程序数据执行程序指令的部分。程序指令和数据存储在计算机的随机存取存储器(RAM)中。特定的数字处理器实现特定的指令集架构(ISA),它定义了指令集及其二进制编码、CPU 寄存器集以及执行指令对处理器状态的影响。有许多不同的 ISA,包括 SPARC、IA32、MIPS、ARM、ARC、PowerPC 和 x86(后者包括 IA32 和 x86-64)。微架构定义了特定 ISA 实现的电路。只要实现 ISA 定义,相同 ISA 的微架构实现可以有所不同。例如,Intel 和 AMD 生产了不同的 IA32 ISA 微处理器实现。

一些 ISA 定义了精简指令集计算机(RISC),而另一些定义了复杂指令集计算机(CISC)。RISC ISA 具有一小组基本指令,每条指令执行速度都很快;每条指令大约在一个处理器时钟周期内执行,编译器将几条基本 RISC 指令的序列组合起来以实现更高级的功能。相反,CISC ISA 的指令提供比 RISC 指令更高级的功能。CISC 架构还定义了比 RISC 更大的指令集,支持更复杂的寻址模式(表达程序数据内存位置的方式),并支持可变长度指令。一条 CISC 指令可以执行一系列低级功能,并且可能需要几个处理器时钟周期才能执行。在 RISC 架构上,同样的功能需要多条指令。

risc 与 cisc 的历史

20 世纪 80 年代初,伯克利大学和斯坦福大学的研究人员通过伯克利 RISC 项目和斯坦福 MIPS 项目开发了 RISC。伯克利大学的 David Paterson 和斯坦福大学的 John Hennessy 因开发 RISC 架构的工作获得了 2017 年图灵奖1(计算机领域最高奖项)。

在开发时,RISC 架构与普遍持有的观点截然不同,即 ISA 需要越来越复杂才能实现高性能。“RISC 方法与当时流行的复杂指令集计算机 (CISC) 不同,它需要一小组简单而通用的指令(计算机必须执行的功能),需要的晶体管比复杂指令集少,并减少了计算机必须执行的工作量。”2

CISC ISA 用比 RISC 更少的指令来表达程序,因此通常可执行程序更小。在主内存较小的系统上,可执行程序的大小是影响程序性能的重要因素,因为较大的可执行程序会为正在运行的程序内存空间的其他部分留出更少的 RAM 空间。基于 CISC 的微架构通常也专门用于高效执行 CISC 可变长度和更高功能的指令。用于执行更复杂指令的专用电路可能会更高效地执行特定的高级功能,但代价是所有指令执行都需要更高的复杂性。

将 RISC 与 CISC 进行比较,RISC 程序包含更多要执行的总指令,但每条指令的执行效率都比大多数 CISC 指令高得多,而且 RISC 允许比 CISC 更简单的微架构设计。CISC 程序包含的指令较少,CISC 微架构旨在高效执行更复杂的指令,但它们需要更复杂的微架构设计和更快的时钟速率。一般而言,RISC 处理器的设计更高效,性能更好。随着计算机内存大小的不断增加,程序可执行文件的大小对程序性能的影响越来越小。然而,CISC 一直是占主导地位的 ISA,这在很大程度上是因为它得到了业界的实施和支持。

如今,CISC 仍然是台式机和许多服务器级计算机的主要 ISA。例如,英特尔的 x86 ISA 是基于 CISC 的。RISC ISA 更常见于高端服务器(例如 SPARC)和移动设备(例如 ARM),因为它们的功耗要求较低。RISC 或 CISC ISA 的特定微架构实现可能在内部同时采用 RISC 和 CISC 设计。例如,大多数 CISC 处理器使用微代码将一些 CISC 指令编码为更像 RISC 的指令集,底层处理器会执行这些指令集,而一些现代 RISC 指令集包含比最初的 MIPS 和 Berkeley RISC 指令集更复杂的指令或寻址模式。

所有现代处理器,无论其 ISA 是什么,都遵循冯·诺依曼架构模型。冯·诺依曼架构的通用设计使其能够执行任何类型的程序。它使用存储程序模型,这意味着程序指令与程序数据一起驻留在计算机内存中,并且两者都是处理器的输入。

本章介绍了冯·诺依曼架构以及现代计算机架构的起源和组件。我们基于冯·诺依曼架构模型构建了一个示例数字处理器 (CPU),使用由逻辑门构建块构成的数字电路设计了一个 CPU,并演示了 CPU 如何执行程序指令。

引用

  1. ACM A. M. Turing Award Winners. https://amturing.acm.org/
  2. "Pioneers of Modern Computer Architecture Receive ACM A.M. Turing Award", ACM Media Center Notice, March 2018. https://www.acm.org/media-center/2018/march/turing-award-2017

  1. ACM A. M. Turing Award Winners. https://amturing.acm.org/

  2. "Pioneers of Modern Computer Architecture Receive ACM A.M. Turing Award", ACM Media Center Notice, March 2018. https://www.acm.org/media-center/2018/march/turing-award-2017